Namespace DataStream
    ''' <summary>
    ''' Specifies that a control/class can be configured and supports being configured
    ''' </summary>
    ''' <remarks></remarks>
    <ObfuscationAttribute(Exclude:=True, ApplyToMembers:=True)> _
    Public Interface IStreamConfig
        Inherits INamed

        ''' <summary>
        ''' Read-only property holding a collection of strings that are used to configure the Stream Control
        ''' for various functions. This is the default property used to configure a control!
        ''' Using the OnClear, OnInsert and OnRemove events is required to utilise this config
        ''' properly! USE IT!
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), _
        Browsable(False)> _
        ReadOnly Property StreamControlItems() As KeyedStringCollectionWithEvents

        ''' <summary>
        ''' Gets or Sets the stream controls custom data byte(). This should be used
        ''' for storing serialized data for configuring the control and making its 
        ''' settings persistant. The simple stream items is used for simpler controls.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), _
        Browsable(False)> _
        Property StreamControlData() As Byte()

        ''' <summary>
        ''' Handles being passed an array of valid stream items
        ''' </summary>
        ''' <param name="Items"></param>
        ''' <remarks></remarks>
        Sub InitialiseValidItems(ByVal Items As String())

        ''' <summary>
        ''' Specifies the maxmimum refresh time for the control in ms
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Property DataRefreshTime() As Integer

    End Interface

End Namespace



